/**
 * @properties={typeid:35,uuid:"A1BB01C0-1EDB-4E18-A0AE-2A39233A60EA",variableType:6}
 */
var fTope = null;

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"539803DA-2197-42FD-A7F2-0B393A399504"}
 */
function Iniciar() 
{
	globals.gProveedorDesdeNombre=null
	globals.gProveedorHastaNombre=null
	//sugerir el ultimo mes para el rango de fechas
	globals.gFechaHasta=new Date();
	globals.gFechaDesde=new Date(2010,1,1); // 29/11/2010
	//globals.gFechaDesde=globals.gFechaDesde.setDate (globals.gFechaHasta.getDate() - 30);
	
	globals.gFechaAux=new Date();
	globals.titulos_resumen(); //22/07/2010
}

/**
 *
 * @properties={typeid:24,uuid:"85081CD6-9DD3-4372-87E8-BE45FF09394B"}
 */
function borrar_carpeta() 
{
	plugins.file.deleteFolder(carpeta,false);
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"FBA42A2B-0A16-4D51-9CAE-5B4FAEC0642F"}
 */
function Ira_resumen(event) 
{
 // trata ambos resumenes juntos preguntando desde cual boton se llamó
// creo que está obsoleto 27/092010
	
	if (globals.gProveedorDesdeNombre==null)
	{
		globals.gMensaje = 'Debe elegir Fletero Desde para ir a ' + mensajito 
		globals.gMensajes();
		elements.proveedor.requestFocus()
		return false;
	}
	if (globals.gProveedorHastaNombre==null)
	{
		globals.gMensaje = 'Debe elegir Fletero Hasta para ir a ' + mensajito
		globals.gMensajes();
		elements.gProveedorHasta.requestFocus()
		return false;
	}
	var mensajito='Listado de adelantos';
	globals.gMensaje = 'El proceso de ' + mensajito + ' de Proveedores puede demorar. Por favor pulse OK y espere  . . .'
	globals.gMensajes();
	
	//02/07/2010// poner en true para que no falle el find, pero controlar el resultado del find para que no regrabe la tabla con los datos asignados en el find !!!!
	databaseManager.rollbackEditedRecords();
	databaseManager.setAutoSave(true);
	
	globals.gtotal_saldo=0; // 19/07/2010  para acumular total general de todos los proveedores
			      
	var carpeta='c:/resumenes_pdf'; //ARMO NOMBRE DE  LA CARPETA PARA DEJAR EL RESUMEN
	plugins.file.createFolder(carpeta);//CREO LA CARPETA PARA DEJAR EL RESUMEN
	
	var estado = foundset.find();
	if (estado==false)
	{
		globals.gMensaje="No encontró movimientos en Cta. Cte. (1º find)";
		globals.gMensajes();	
		return false;
	}
	//busca desde el inicio para calcular saldo para el proveedor///
	ctacte_pr_to_proveedor.razon_social='#'+ globals.gProveedorDesdeNombre+'...'+globals.gProveedorHastaNombre // 10/08/2010
	//ctacte_pr_to_proveedor.razon_social='>='+ globals.gProveedorDesdeNombre; // 10/08/2010  no filtra toma el ultimo rango solamente
	//ctacte_pr_to_proveedor.razon_social='<='+ globals.gProveedorHastaNombre; // 10/08/2010  no filtra
	
	ctacte_pr_to_proveedor.es_fletero=globals.gproveedor_o_fletero //v.global q determina tipo de proveedor
	//busca desde el inicio para calcular saldo///////////////////
	var d1 = new Date (0000,00,00)
	d1.setHours(00);
	d1.setMinutes(00);
	d1.setSeconds(00);             
	var df1 = utils.dateFormat(d1, 'dd-MM-yyyy HH:mm:ss')
	var d2 = globals.gFechaHasta
	d2.setHours(23);
	d2.setMinutes(59);
	d2.setSeconds(59);
	var df2 = utils.dateFormat(d2, 'dd-MM-yyyy HH:mm:ss')
	foundset.fecha_mov=df1+'...' + df2+'|dd-MM-yyyy HH:mm:ss'  
	foundset.ctacte_pr_to_tab_mov_pr.adelantos=1
	var found = foundset.search();
	var proveedor_anterior=null;
	globals.gtotal_saldo=0;
	globals.gsaldo_aux=0.000;
	globals.gsaldo_resumen_aux=0.000;
	if (found != 0)
	{ 
		// ordenar por fecha del mov.  //01/07/2010 
		foundset.sort('ctacte_pr_to_proveedor.razon_social asc, proveedor_id asc, fecha_mov asc') 
		
		globals.gsaldo_aux=0.000
		globals.gsaldo_resumen_aux=0.000
		
		for (var i=1 ; i <= foundset.getSize(); i++)
		{
			foundset.setSelectedIndex(i)
			if (proveedor_anterior!=proveedor_id)
			{	
			globals.gsaldo_aux=0.000
			globals.gsaldo_resumen_aux=0.000
			proveedor_anterior=proveedor_id  
			}
			
			globals.gsaldo_aux+=importe_signo
			foundset.saldo_aux=globals.gsaldo_aux
			if (event.getElementName()=='saldo')
			{
				if (foundset.saldo > 0.00)  
				{
					globals.gsaldo_resumen_aux+=saldo_signo;
					foundset.saldo_resumen_aux=globals.gsaldo_resumen_aux
					globals.gtotal_saldo+=saldo_signo;
				}
				else
				{
					foundset.saldo_resumen_aux=globals.gsaldo_resumen_aux
				}	
				ctacte_pr_to_proveedor.saldo=globals.gsaldo_resumen_aux;
				//------------------------ 04/08/2010
				if (event.getElementName()=='saldo')
				{
				// diferencia entre saldos en valor absoluto 12/07/2010
					var dife = Math.abs(globals.gsaldo_aux-globals.gsaldo_resumen_aux)
					if (dife > 1)    // arma mensaje para el listado
						ctacte_pr_to_proveedor.mensaje='HAY DIFERENCIA DE $' + dife + '  Historico: $' + globals.gsaldo_aux + '  Saldo: $' + globals.gsaldo_resumen_aux;
					else
						ctacte_pr_to_proveedor.mensaje=null;
				}
				//------------------------ 04/08/2010
			}
			else
			{
				ctacte_pr_to_proveedor.saldo=globals.gsaldo_aux;
				globals.gtotal_saldo+=importe_signo;
				ctacte_pr_to_proveedor.mensaje=null;  // 10/08/2010
			}
		}  // fin del for
	//Buscar Rango de Fechas pedido //////////////////////////////
	var estado=foundset.find();
	if (estado==false)
	{
		globals.gMensaje="No encontró movimientos (2º find)";
		globals.gMensajes();	
		return false;
	}
	//foundset.proveedor_id=globals.gProveedorDesde
	if (event.getElementName()=='cuenta')
	{
	var d1 = globals.gFechaDesde
	d1.setHours(00);
	d1.setMinutes(00);
	d1.setSeconds(00);             
	var df1 = utils.dateFormat(d1, 'dd-MM-yyyy HH:mm:ss')
	var d2 = globals.gFechaHasta
	d2.setHours(23);
	d2.setMinutes(59);
	d2.setSeconds(59);
	var df2 = utils.dateFormat(d2, 'dd-MM-yyyy HH:mm:ss');
	foundset.fecha_mov=df1+'...' + df2+'|dd-MM-yyyy HH:mm:ss';
	}
	else
	{  // en saldos muestra todo, no filtra por fecha
	foundset.saldo = '>0.00' ;
	}
	var found = foundset.search(false); 
	
	if (found == 0)  // no hay movs en el rango
		{  //  cuando no hay en el rango no sale ningun listado //10/08/2010
		globals.gsaldo_aux=0.000
		}  	//fin del segundo search ctacte
	}  //fin del primer  search ctacte

		
	var fechita=utils.dateFormat(new Date(),'dd-MM-yyyy HH-mm-ss');  	

	if (event.getElementName()=='cuenta')
	{// arma nombre del resumen de cuenta
	if(globals.gproveedor_o_fletero==1)
			var nombre_resumen=carpeta+'/FleterosResumenCuenta'+fechita+'.pdf';
		else
			var nombre_resumen=carpeta+'/ProveedoresResumenCuenta'+fechita+'.pdf';
	}
	else
	{// arma nombre del resumen de saldos
		if(globals.gproveedor_o_fletero==1)
			var nombre_resumen=carpeta+'/FleterosResumenSaldos'+fechita+'.pdf';
		else
			var nombre_resumen=carpeta+'/ProveedoresResumenSaldos'+fechita+'.pdf';
	}
	//ARMO NOMBRE DEL PDF DE todos los PROVEEDORES     UNA SOLA VEZ
		if (event.getElementName()=='cuenta')
		//CREO EL PDF
			forms.resumen_gral_3.controller.print(false,false,plugins.pdf_output.getPDFPrinter(nombre_resumen));
		else
			forms.resumen_gral_4.controller.print(false,false,plugins.pdf_output.getPDFPrinter(nombre_resumen))
			
	application.showURL('file:///' + nombre_resumen)  // 02/08/2010		
			
	// 02/08/2010  globals.gMensaje = mensajito + ' generado en ' + nombre_resumen;  // anterior al 02/08/2010
	// 02/08/2010  globals.gMensajes();  // anterior al 02/08/2010
	Iniciar();

}

/**
 *
 * @properties={typeid:24,uuid:"A6F90DC6-6BDE-4728-9910-47DC7D3A8743"}
 */
function salir() 
{
	databaseManager.setAutoSave(false); //12/07/2010
}

/**
 * @properties={typeid:24,uuid:"09585667-BE7A-43CD-B45C-B6555008F2F4"}
 */
function resumenCuenta(event)
{
	databaseManager.rollbackEditedRecords()
	databaseManager.setAutoSave(true)
	
	globals.gtotal_saldo = 0 // acumulo el saldo total del resumen
	/* if (event.getElementName()=='cuenta')
	{
		var campo_suma = 'importe_signo'
		var campo_saldo = 'saldo_aux'
		var campo_credito = 'credito'
		var campo_debito = 'debito'
		var nombre_form = 'resumen_gral_3'
	}
	else
	{
		var campo_suma = 'saldo_signo'
		var campo_saldo = 'saldo_resumen_aux'
		var campo_credito = 'credito_saldo'
		var campo_debito = 'debito_saldo'
		var nombre_form = 'resumen_gral_4'		
	} */
	// setea campos 27/09/2010
		var campo_suma = 'saldo_signo'
		var campo_saldo = 'saldo_resumen_aux'
		var campo_credito = 'credito_saldo'
		var campo_debito = 'debito_saldo'
		var nombre_form = 'resumen_adel_3'		
	var proveedores = databaseManager.getFoundSet('infocom','proveedor')
	// primer find - >= que desde
	proveedores.find()
//	proveedores.razon_social='#'+ globals.gProveedorDesdeNombre+' ... '+globals.gProveedorHastaNombre
	proveedores.razon_social='#>='+ globals.gProveedorDesdeNombre
	proveedores.es_fletero=globals.gproveedor_o_fletero
	if (proveedores.search() == 0)
	{
		globals.gDialog('Error','No hay proveedores en ese rango','OK','CerrarForm')
		return 0 // NO HAY PROVEEDORES
	}
	
	// segundo find - <= que hasta - sobre la busqueda anterior
	proveedores.find()
	//proveedores.razon_social='#'+ globals.gProveedorDesdeNombre+' ...'+globals.gProveedorHastaNombre
	proveedores.razon_social='#<='+ globals.gProveedorHastaNombre

	proveedores.es_fletero=globals.gproveedor_o_fletero
	if (proveedores.search(false) == 0)
	{
		globals.gDialog('Error','No hay proveedores en ese rango','OK','CerrarForm')
		return 0 // NO HAY PROVEEDORES
	}
	else
	{
		proveedores.sort('razon_social asc,proveedor_id asc')
//PRIMER RECORRIDA PARA SACAR LOS adelantos
		for (var i=1; i <= proveedores.getSize() ; i++)
		{
			proveedores.setSelectedIndex(i)
			var saldo_prov = 0
			proveedores.proveedor_to_ctacte_pr.find()
			
			var Searchdate = new Date()
			Searchdate = utils.dateFormat(new Date (0,0,0),'dd-MM-yyyy')+'...'+utils.dateFormat(globals.gFechaHasta,'dd-MM-yyyy')
			proveedores.proveedor_to_ctacte_pr.fecha_mov = '#'+Searchdate +'|dd-MM-yyyy'
			proveedores.proveedor_to_ctacte_pr.ctacte_pr_to_tab_mov_pr.adelantos=1   // solo procesa los adelantos 27/09/2010
			proveedores.proveedor_to_ctacte_pr.saldo = '>0.00'
			if (proveedores.proveedor_to_ctacte_pr.search() != 0)
			{
				proveedores.proveedor_to_ctacte_pr.sort('fecha_mov asc')
				for (var j=1; j<=proveedores.proveedor_to_ctacte_pr.getSize();j++)
				{
					proveedores.proveedor_to_ctacte_pr.setSelectedIndex(j)
					saldo_prov = globals.operacion(saldo_prov,'+',proveedores.proveedor_to_ctacte_pr[campo_suma])
					proveedores.proveedor_to_ctacte_pr[campo_saldo] = saldo_prov
				}
			}
			globals.gtotal_saldo = globals.operacion(globals.gtotal_saldo,'+',saldo_prov)
			proveedores.saldo = saldo_prov 
		}
		var ds = databaseManager.createEmptyDataSet(0,['proveedor_id','razon_social','fecha_mov','cod_mov','comprob_completo','concepto',campo_credito,campo_debito,campo_saldo])
//SEGUNDA RECORRIDA PARA GUARDAR LOS MOVIMIENTOS EN EL DS
		//proveedores.sort('proveedor_id asc')  // por qué lo sortea así ?
		for (var i=1; i <= proveedores.getSize() ; i++)
		{
			proveedores.setSelectedIndex(i)
			if (Math.abs(proveedores.saldo) > fTope)
			{
				proveedores.proveedor_to_ctacte_pr.find()
				var Searchdate = new Date()
				Searchdate = utils.dateFormat(globals.gFechaDesde,'dd-MM-yyyy')+'...'+utils.dateFormat(globals.gFechaHasta,'dd-MM-yyyy')
				proveedores.proveedor_to_ctacte_pr.fecha_mov = '#'+Searchdate +'|dd-MM-yyyy'
				proveedores.proveedor_to_ctacte_pr.ctacte_pr_to_tab_mov_pr.adelantos=1   // solo procesa los adelantos 27/09/2010
				proveedores.proveedor_to_ctacte_pr.saldo = '>0.00'
				if (proveedores.proveedor_to_ctacte_pr.search() != 0)
				{
					proveedores.proveedor_to_ctacte_pr.sort('fecha_mov asc')
					for (var j=1; j<=proveedores.proveedor_to_ctacte_pr.getSize();j++)
					{
						proveedores.proveedor_to_ctacte_pr.setSelectedIndex(j)
						var ar = new Array(proveedores.proveedor_id,proveedores.razon_social,proveedores.proveedor_to_ctacte_pr.fecha_mov,proveedores.proveedor_to_ctacte_pr.cod_mov,proveedores.proveedor_to_ctacte_pr.comprob_completo,proveedores.proveedor_to_ctacte_pr.concepto,proveedores.proveedor_to_ctacte_pr[campo_credito],proveedores.proveedor_to_ctacte_pr[campo_debito],proveedores.proveedor_to_ctacte_pr[campo_saldo])
						ds.addRow(ds.getMaxRowIndex()+1,ar)
					}
				}
				else
				{
					var ar = new Array(proveedores.proveedor_id,proveedores.razon_social,globals.gFechaHasta,null,null,'Saldo a la fecha',null,null,proveedores.saldo)
					ds.addRow(ds.getMaxRowIndex()+1,ar)
				}
			}
		}
		
		//ARMO EL FORM PARA EL CORTE DE CONTROL
		var nombre = 'resumen_adelantos_fleteros' + '_clon'
		history.removeForm(nombre)
		solutionModel.removeForm(nombre)
	
		var frm = solutionModel.cloneForm(nombre,solutionModel.getForm(nombre_form))
		var tipos = new Array (JSColumn.INTEGER,JSColumn.TEXT,JSColumn.DATETIME,JSColumn.INTEGER,JSColumn.TEXT,JSColumn.TEXT,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER)
		frm.dataSource = ds.createDataSource(event.getElementName(),tipos)
		
		var sub = frm.getLeadingSubSummaryParts()
		sub[0].groupbyDataProviderIDs = 'razon_social'

		var trail = frm.getTrailingSubSummaryParts()
		trail[0].groupbyDataProviderIDs = 'razon_social'
		
		forms[frm.name].controller.sort('razon_social asc, proveedor_id asc, fecha_mov asc')
		
		var nombre_resumen = 'c:/resumenes_pdf/resumen_adelantos_fleteros_'+ utils.dateFormat(new Date(),'dd-MM-yyyy HH-mm-ss')+'.pdf'
		forms[frm.name].controller.print(false,false,plugins.pdf_output.getPDFPrinter(nombre_resumen))
		application.showURL('file:///' + nombre_resumen)
	}
}
